package com.alibaba.citrus.cr.sales.plan.api.setting;

import com.alibaba.citrus.cr.sales.plan.dto.api.request.ChangePasswordRequest;
import com.alibaba.citrus.cr.sales.plan.dto.api.request.ResetPasswordEmailRequest;
import com.alibaba.citrus.cr.sales.plan.dto.api.request.ResetPasswordPhoneRequest;
import com.alibaba.citrus.cr.sales.plan.sdo.SendMailSDO;
import com.alibaba.lattice2.epoch.meshflow.model.annotation.MeshFlowService;
import com.alibaba.lattice2.epoch.sdk.model.Result;

/**
 * @author zhoubc
 * @description: TODO
 * @date 2023/2/8 16:54
 */
@MeshFlowService(apps = {"bc_order"}, name = "loginService")
public interface LoginService {

    /**
     * 邮箱验证重置密码
     *
     * @param resetPasswordEmailRequest
     * @return
     */
    Result<SendMailSDO> resetPasswordEmail(ResetPasswordEmailRequest resetPasswordEmailRequest);

    /**
     * 手机号验证重置密码
     *
     * @param resetPasswordPhoneRequest
     * @return
     */
    Result<SendMailSDO> resetPasswordSendPhone(ResetPasswordPhoneRequest resetPasswordPhoneRequest);

    /**
     * 发送短信回调处理
     *
     * @return
     */
    Result<String> sendMessageCallback(String notificationId, String recipient, String content, String restResult);

    /**
     * 修改密码
     *
     * @param changePasswordRequest
     * @return
     */
    Result<Boolean> changePassword(ChangePasswordRequest changePasswordRequest);

    /**
     * 删除验证码校验限制缓存
     * @param employeeId
     * @return
     */
    Result<Boolean> removeVerificationLimitCache(String employeeId);



}
